package com.pp.common.util;

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

public class WebUtils {

    /**
     * 将数据以JSON格式响应到客户端。
     *
     * @param response 响应对象，负责向客户端输出数据的对象。 - 打印机
     * @param data 封装了向客户端输出的数据。 - 白纸
     * @throws IOException
     */
    public static void writeJsonToClient(HttpServletResponse response, Map<String, Object> data) throws IOException {
        // 1. 设置响应数据的编码
        response.setCharacterEncoding("utf-8");

        // 2. 告诉浏览器响应数据的类型和编码
        response.setContentType("application/json;charset=utf-8");

        // 3. 将数据转换成JSON格式字符串
        String jsonStr = new ObjectMapper().writeValueAsString(data);

        // 4. 获取输出流对象，将JSON数据写到客户端
        PrintWriter out = response.getWriter();
        out.println(jsonStr);
        out.flush();
    }
}
